﻿using System.Data.SqlClient;
using Architecture.DataLayer.DbAccess;

namespace Architecture.BusinessLayer
{
    public abstract class SqlRequestor : IRequestor
    {
        #region Attributes
        /// <summary>
        /// Interfaz de la clase que ejecuta operaciones u obtiene informacion de la base de datos
        /// </summary>
        protected DataManager<SqlDataReader, SqlParameter[], SqlParameter> Implementor;
        #endregion

        #region Public Methods
        /// <summary>
        /// Ejecuta el login para un usuario, e indica si los credenciales dados son validos
        /// </summary>
        /// <param name="userName">El nombre de usuario</param>
        /// <param name="password">La contraseña del usuario</param>
        /// <returns></returns>
        public abstract bool LogIn(string userName, string password);

        /// <summary>
        /// Obtiene el id de un usuario
        /// </summary>
        /// <param name="userName">El nombre de usuario</param>
        /// <returns></returns>
        public abstract int GetUserId(string userName);
        #endregion
    }
}
